﻿using System;

namespace DCS.Domain.Entities
{
    /// <summary>
    /// Структура хранения задачи.
    /// </summary>
    [Serializable]
    public class TaskPack
    {
        public TaskPack()
        {
            ComputationModule = new ComputationModule();
        }

        /// <summary> Дополниельные аргументы командной строки. </summary>
        public string AdditionalArguments;

        /// <summary> Вычислительный модуль. </summary>
        public ComputationModule ComputationModule;

        /// <summary> Срок хранения задачи (актуален до...). </summary>
        public DateTime Deadline;

        /// <summary> Массив зависимостей задачи.</summary>
        public Dependency[] Dependencies;

        /// <summary> GUID задачи. </summary>
        public Guid Guid;

        /// <summary> Текущая порция задачи (для расчёта клиентом). </summary>
        public uint Portion;

        /// <summary> Число порций задачи. </summary>
        public uint PortionsNumber;

        /// <summary> Приоритет задачи. </summary>
        public Int16 Priority;

        /// <summary> Описание задачи. </summary>
        public string Summary;

        /// <summary> Имя задачи. </summary>
        public string TaskName;

        /// <summary> Задание было ретранслированно с центрального сервера. </summary>
        public bool IsRetransferred;
    }
}